package com.czh.service;

import com.czh.dto.UserQueryDTO;
import com.czh.entity.User;
import com.czh.utils.PageInfo;
import com.czh.utils.PageUtils;

import java.util.List;

/**
 * (User)服务接口层
 *
 * @author makejava
 * @since 2024-07-24 17:00:54
 */
public interface UserService {

    /**
     * 查询 列表
     *
     * @param user 对象
     * @return
     */
    List<User> list(User user);

    /**
     * 详情
     *
     * @param id 主键
     * @return
     */
    User detail(Long id);

    /**
     * 添加
     *
     * @param user 对象
     * @return
     */
    int save(User user);

    /**
     * 修改 根据主键
     *
     * @param user 对象
     * @return
     */
    int edit(User user);

    /**
     * 删除
     *
     * @param id 主键
     * @return
     */
    int delete(Long id);

    /**
     * 批量删除
     *
     * @param ids 主键集合
     * @return
     */
    int deleteByIds(List<Long> ids);

    /**
     * 基于注解的分页查询
     *
     * @param page
     * @param size
     * @return
     */
    List<User> pageBySimple(int page, int size);

    /**
     * 自定义分页
     *
     * @param userQueryDTO
     * @return
     */
    PageUtils pageByCustom(UserQueryDTO userQueryDTO);

    PageInfo pageByCustom2(UserQueryDTO userQueryDTO);

    /**
     * 分页查询
     *
     * @param page
     * @param size
     * @return
     */
    List<User> pageList(Integer page, Integer size);
}

